An in-memory processing application defined as middleware on a server is a computer program to perform data processing without using an auxiliary storage device (also termed an external storage device) instanced by a hard disk and other equivalent storages by retaining data and a program on a memory. A memory usage quantity increases with a rise of a data quantity treated by the in-memory processing application. A layout of disposing a memory pool outside the server is considered for coping with the increase in memory usage quantity. The memory pool is hardware having a memory interface and containing a plurality of memories.
A Storage Class Memory (SCM) becomes utilized in addition of a high-speed memory instanced by a DRAM (Dynamic Random Access Memory) as the memory contained in the memory pool. The SCM is a memory that is lower in speed but larger in capacity than the DRAM. When using the SCM, it follows that the memory pool contains heterogeneous memories each having a different access speed.
It is considered for operating the in-memory processing application at a high speed to optimize allocation of data in the memory pool based on an access frequency and reusability of data. It may be sufficient to allocate, e.g., the data having the access frequency higher than a predetermined threshold value to the DRAM and the data having the access frequency equal to or lower than the predetermined threshold value to the SCM. An unused area of the DRAM can be also used as a cache of the SCM.    [Patent document 1] Japanese Laid-Open Patent Publication No. 2014-78231    [Patent document 2] Japanese National Publication of International Patent Application No. 2010-524059    [Patent document 3] Japanese Laid-Open Patent Publication No. 2006-195569    [Patent document 4] Japanese Laid-Open Patent Publication No. 2009-211227